#pragma once
#ifndef SMPPSUBMITMULTRESP_HPP
#define SMPPSUBMITMULTRESP_HPP

#include "SMPPStructures.hpp"
#include "SMPPHeader.hpp"
#include "SMPPMessageSubmissionResponseTLVs.hpp"
#include <QVector>

namespace smpp {
namespace pdu{

class SMPP_DLLPRFX SubmitMultiResp : public Header,
public MessageSubmissionResponseTLVs{
	CoctetString _MessageId;
	quint8 _NoUnsuccess;
	QVector<UnsuccessSME> _UnsuccessSME;
public:
	SubmitMultiResp(const Header &nHeader = Header(),
		const CoctetString &nMessageId = "",
		const quint8 nNoUnsuccess = 0,
		const QVector<UnsuccessSME> nUnsuccessSME 
		= QVector<UnsuccessSME>(),
		const MessageSubmissionResponseTLVs &
		nMessageSubmissionResponseTLVs = MessageSubmissionResponseTLVs());

	SubmitMultiResp(const SubmitMultiResp &);

	void setMessageId(const CoctetString &);

	const CoctetString &getMessageId() const;

	void setNoUnsuccess(const quint8);

	const quint8 getNoUnsuccess() const;

	void addUnsuccessSME(const UnsuccessSME &);

	void setUnsuccessSME(const QVector<UnsuccessSME> &);

	const QVector<UnsuccessSME> &getUnsuccessSME() const;

	void calcCommandLength();
};

}
}

#endif
